三十天也快結束了,大家對 CI 也有更深的了解。而從今天開始會講 CI 工具,有了概念後再開始實作,相信會做得更有樣子。
CI server 主要的目的是隨時待命,只要程式碼有新的提交,它就會開始忙著測東測西,最後會跟你說本次提交是成功還是失敗。歷史記錄是必要的,報表和 Artifacts 通常也都會幫你收集起來備存。
目前常見的 CI server 實作如下:
未來幾天會講的實作與比較如下:
比較 | Dapper | Travis CI | Circle CI | GitLab CI | Pipelines |
---|---|---|---|---|---|
服務類型 | Local | SaaS | SaaS | SaaS / On-premise | SaaS |
價格 | Free | Free / Enterprise | Free / Pricing | Free / On-premise | Free / Pricing |
支援私有專案 | N/A | Yes (Enterprise) | Yes | Yes | Yes |
支援的版控系統 | N/A | GitHub | GitHub / Bitbucket | GitLab | Bitbucket |
測試執行環境 | Build Immediately | Ubuntu 12.04 / 14.04 | Ubuntu 12.04 / 14.04 | Docker / On-premise | Docker |
設定檔格式 | Dockerfile + script | .travis.yml |
circle.yml |
.gitlab-ci.yml |
bitbucket-pipelines.yml |
支援 Docker | N/A | 支援 | 支援 | 使用 DinD | 無 |
特殊技能 | Local 執行 | 多組環境定義與測試 | Artifacts 儲存 | 彈性的 Pipeline 定義 | 支援 Mercurial |
選擇講這幾家,主要當然是因為比較熟。另一個原因是,它們都有一些免費的方案可以選擇,而且可以快速跟常見的版控串接,都能立即看到一些成果。
今天稍微休息一下,明天開始會介紹如何利用工具做測試了。